package SeparateAnalysis;

import java.text.DecimalFormat;
import java.util.Hashtable;

public class TempCorrections {

    static String corrAbvS = "none";

    static final Double[] c0 = {0.0, 0.0, 0.7, 1.6, 2.5, 3.5, 4.4, 5.2, 6.1, 6.9, 7.7, 8.5, 9.3, 10.1, 10.9, 11.6, 12.4, 13.2, 13.9, 14.7, 15.4, 16.1, 16.7, 17.4, 18.2, 18.9, 19.6, 20.3, 21.1, 21.8, 22.6, 23.4, 24.1, 24.9, 25.7, 26.5, 27.3, 28.2, 29.1, 30.1, 31.1, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.1, 39.2, 40.3, 41.5, 42.6, 43.8, 44.9, 46.1, 47.2, 48.3, 49.4, 50.5, 51.7, 52.8, 53.9, 55.1, 56.2, 57.2, 58.2, 59.3, 60.3, 61.3, 62.3, 63.3, 64.3, 65.4, 66.4, 67.3, 68.3, 69.3, 70.3, 71.3, 72.3, 73.3, 74.3, 75.4, 76.4, 77.5, 78.6, 79.7, 80.9, 82.1, 83.3, 84.5, 85.7, 87.0, 88.2, 89.5, 90.7, 91.8, 92.9, 93.9, 94.7, 95.2};
    static final Double[] c1 = {0.0, 0.0, 0.7, 1.6, 2.5, 3.5, 4.4, 5.2, 6.1, 6.9, 7.7, 8.5, 9.4, 10.2, 10.9, 11.7, 12.5, 13.3, 14.1, 14.8, 15.5, 16.2, 17.0, 17.7, 18.4, 19.1, 19.9, 20.6, 21.4, 22.2, 23.0, 23.7, 24.5, 25.3, 26.1, 26.9, 27.7, 28.6, 29.6, 30.5, 31.5, 32.5, 33.5, 34.4, 35.5, 36.5, 37.5, 38.5, 39.6, 40.8, 41.9, 43.1, 44.2, 45.4, 46.5, 47.6, 48.7, 49.8, 50.9, 52.1, 53.2, 54.3, 55.4, 56.5, 57.6, 58.6, 59.6, 60.6, 61.6, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.8, 77.8, 78.9, 80.0, 81.2, 82.4, 83.6, 84.8, 86.0, 87.3, 88.5, 89.7, 90.9, 92.1, 93.1, 94.1, 94.9, 95.4};
    static final Double[] c2 = {0.0, 0.0, 0.7, 1.6, 2.5, 3.5, 4.4, 5.2, 6.1, 6.9, 7.7, 8.6, 9.4, 10.2, 11.0, 11.8, 12.6, 13.4, 14.2, 15.0, 15.7, 16.4, 17.2, 17.9, 18.6, 19.4, 20.2, 20.9, 21.7, 22.5, 23.3, 24.1, 24.9, 25.7, 26.5, 27.3, 28.1, 29.1, 30.0, 31.0, 31.9, 32.9, 33.9, 34.9, 35.9, 36.9, 37.9, 39.0, 40.1, 41.2, 42.4, 43.5, 44.7, 45.8, 46.9, 48.0, 49.1, 50.2, 51.3, 52.4, 53.6, 54.7, 55.8, 56.9, 57.9, 58.9, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.1, 77.1, 78.2, 79.3, 80.4, 81.5, 82.7, 83.9, 85.1, 86.3, 87.6, 88.8, 90.0, 91.2, 92.3, 93.3, 94.3, 95.1, 95.6};
    static final Double[] c3 = {0.0, 0.0, 0.7, 1.6, 2.5, 3.5, 4.4, 5.2, 6.1, 6.9, 7.7, 8.6, 9.4, 10.2, 11.1, 11.9, 12.7, 13.5, 14.3, 15.1, 15.9, 16.6, 17.4, 18.1, 18.9, 19.7, 20.4, 21.2, 22.0, 22.9, 23.7, 24.5, 25.3, 26.1, 26.9, 27.7, 28.6, 29.5, 30.4, 31.4, 32.4, 33.4, 34.4, 35.3, 36.4, 37.4, 38.4, 39.4, 40.5, 41.7, 42.8, 44.0, 45.1, 46.2, 47.3, 48.4, 49.5, 50.6, 51.7, 52.8, 53.9, 55.1, 56.2, 57.2, 58.3, 59.3, 60.3, 61.3, 62.3, 63.3, 64.4, 65.4, 66.4, 67.4, 68.4, 69.4, 70.4, 71.4, 72.3, 73.3, 74.3, 75.4, 76.4, 77.4, 78.5, 79.6, 80.7, 81.8, 83.0, 84.2, 85.4, 86.6, 87.8, 89.1, 90.2, 91.4, 92.5, 93.6, 94.5, 95.3, 95.8};
    static final Double[] c4 = {0.0, 0.0, 0.7, 1.6, 2.5, 3.5, 4.4, 5.2, 6.1, 6.9, 7.8, 8.6, 9.5, 10.3, 11.1, 11.9, 12.8, 13.6, 14.4, 15.3, 16.0, 16.8, 17.6, 18.3, 19.1, 19.9, 20.7, 21.5, 22.4, 23.2, 24.0, 24.8, 25.6, 26.5, 27.3, 28.1, 29.0, 29.9, 30.9, 31.8, 32.8, 33.8, 34.8, 35.8, 36.8, 37.8, 38.8, 39.8, 41.0, 42.1, 43.2, 44.4, 45.5, 46.6, 47.7, 48.8, 49.9, 51.0, 52.1, 53.2, 54.3, 55.4, 56.5, 57.6, 58.6, 59.6, 60.7, 61.7, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.8, 78.8, 79.9, 81.0, 82.2, 83.3, 84.5, 85.7, 86.9, 88.1, 89.3, 90.5, 91.6, 92.7, 93.8, 94.7, 95.5, 96.0};
    static final Double[] c5 = {0.0, 0.0, 0.7, 1.6, 2.5, 3.4, 4.4, 5.3, 6.1, 6.9, 7.8, 8.6, 9.5, 10.3, 11.2, 12.0, 12.9, 13.7, 14.6, 15.4, 16.2, 17.0, 17.8, 18.6, 19.4, 20.2, 21.0, 21.8, 22.7, 23.5, 24.4, 25.2, 26.0, 26.9, 27.7, 28.5, 29.4, 30.3, 31.3, 32.3, 33.2, 34.2, 35.2, 36.2, 37.2, 38.2, 39.3, 40.3, 41.4, 42.5, 43.7, 44.8, 45.9, 47.1, 48.1, 49.2, 50.3, 51.4, 52.5, 53.6, 54.7, 55.8, 56.9, 57.9, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.1, 78.1, 79.2, 80.2, 81.4, 82.5, 83.7, 84.8, 86.0, 87.2, 88.4, 89.6, 90.7, 91.9, 93.0, 94.0, 94.9, 95.7, 96.2};
    static final Double[] c6 = {0.0, 0.0, 0.7, 1.6, 2.6, 3.5, 4.4, 5.3, 6.2, 7.0, 7.9, 8.8, 9.6, 10.5, 11.3, 12.2, 13.0, 13.9, 14.8, 15.6, 16.4, 17.2, 18.0, 18.8, 19.7, 20.5, 21.3, 22.2, 23.0, 23.9, 24.7, 25.6, 26.4, 27.2, 28.1, 29.0, 29.8, 30.8, 31.7, 32.7, 33.7, 34.7, 35.7, 36.7, 37.7, 38.7, 39.7, 40.7, 41.8, 43.0, 44.1, 45.2, 46.4, 47.5, 48.5, 49.6, 50.7, 51.8, 52.8, 53.9, 55.0, 56.1, 57.2, 58.3, 59.3, 60.3, 61.3, 62.3, 63.3, 64.4, 65.4, 66.4, 67.4, 68.4, 69.4, 70.4, 71.4, 72.4, 73.3, 74.3, 75.4, 76.4, 77.4, 78.4, 79.5, 80.6, 81.7, 82.8, 83.9, 85.1, 86.3, 87.4, 88.6, 89.8, 91.0, 92.1, 93.2, 94.2, 95.1, 95.9, 96.4};
    static final Double[] c7 = {0.0, 0.0, 0.8, 1.7, 2.6, 3.6, 4.5, 5.4, 6.3, 7.1, 8.0, 8.9, 9.7, 10.6, 11.5, 12.3, 13.2, 14.1, 14.9, 15.8, 16.6, 17.4, 18.3, 19.1, 19.9, 20.8, 21.6, 22.5, 23.3, 24.2, 25.1, 25.9, 26.8, 27.6, 28.5, 29.4, 30.3, 31.2, 32.2, 33.2, 34.2, 35.2, 36.2, 37.2, 38.2, 39.2, 40.2, 41.2, 42.3, 43.4, 44.5, 45.6, 46.8, 47.9, 48.9, 50.0, 51.1, 52.1, 53.2, 54.3, 55.4, 56.5, 57.5, 58.6, 59.6, 60.6, 61.7, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.8, 79.8, 80.9, 82.0, 83.1, 84.2, 85.4, 86.5, 87.7, 88.9, 90.0, 91.2, 92.3, 93.4, 94.4, 95.3, 96.1, 96.6};
    static final Double[] c8 = {0.0, 0.0, 0.8, 1.7, 2.7, 3.6, 4.6, 5.5, 6.4, 7.2, 8.1, 9.0, 9.9, 10.8, 11.6, 12.5, 13.4, 14.3, 15.1, 16.0, 16.8, 17.7, 18.5, 19.4, 20.2, 21.1, 21.9, 22.8, 23.6, 24.5, 25.4, 26.3, 27.1, 28.0, 28.9, 29.8, 30.7, 31.7, 32.7, 33.6, 34.6, 35.6, 36.6, 37.6, 38.6, 39.6, 40.6, 41.6, 42.7, 43.8, 44.9, 46.1, 47.2, 48.3, 49.3, 50.4, 51.4, 52.5, 53.5, 54.6, 55.7, 56.8, 57.9, 58.9, 59.9, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.1, 80.1, 81.2, 82.3, 83.4, 84.5, 85.6, 86.8, 88.0, 89.1, 90.3, 91.4, 92.5, 93.6, 94.6, 95.5, 96.3, 96.8};
    static final Double[] c9 = {0.0, 0.0, 0.8, 1.8, 2.7, 3.7, 4.6, 5.5, 6.4, 7.3, 8.2, 9.1, 10.0, 10.9, 11.8, 12.7, 13.5, 14.4, 15.3, 16.2, 17.0, 17.9, 18.8, 19.6, 20.5, 21.4, 22.2, 23.1, 24.0, 24.8, 25.7, 26.6, 27.5, 28.4, 29.3, 30.2, 31.1, 32.1, 33.1, 34.1, 35.1, 36.1, 37.1, 38.1, 39.1, 40.1, 41.1, 42.1, 43.2, 44.3, 45.4, 46.5, 47.6, 48.6, 49.7, 50.8, 51.8, 52.8, 53.9, 55.0, 56.1, 57.1, 58.2, 59.2, 60.3, 61.3, 62.3, 63.3, 64.3, 65.4, 66.4, 67.4, 68.4, 69.4, 70.3, 71.3, 72.3, 73.3, 74.3, 75.3, 76.3, 77.3, 78.3, 79.4, 80.4, 81.5, 82.6, 83.7, 84.8, 85.9, 87.1, 88.2, 89.4, 90.5, 91.6, 92.7, 93.8, 94.8, 95.7, 96.5, 97.1};
    static final Double[] c10 = {0.0, 0.0, 0.9, 1.8, 2.8, 3.7, 4.7, 5.6, 6.5, 7.4, 8.3, 9.2, 10.1, 11.0, 11.9, 12.8, 13.7, 14.6, 15.5, 16.4, 17.3, 18.1, 19.0, 19.9, 20.8, 21.6, 22.5, 23.4, 24.3, 25.2, 26.1, 27.0, 27.9, 28.8, 29.7, 30.6, 31.6, 32.6, 33.5, 34.5, 35.5, 36.6, 37.6, 38.5, 39.5, 40.5, 41.5, 42.5, 43.6, 44.7, 45.8, 46.9, 48.0, 49.0, 50.1, 51.1, 52.2, 53.2, 54.2, 55.3, 56.4, 57.4, 58.5, 59.5, 60.6, 61.6, 62.6, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.6, 75.6, 76.6, 77.6, 78.7, 79.7, 80.7, 81.8, 82.8, 83.9, 85.1, 86.2, 87.3, 88.4, 89.6, 90.7, 91.8, 92.9, 93.9, 94.9, 95.9, 96.7, 97.3};
    static final Double[] c11 = {0.0, 0.0, 1.0, 1.9, 2.9, 3.9, 4.8, 5.8, 6.7, 7.6, 8.5, 9.4, 10.3, 11.2, 12.1, 13.0, 13.9, 14.8, 15.7, 16.6, 17.5, 18.4, 19.3, 20.2, 21.1, 22.0, 22.8, 23.7, 24.7, 25.6, 26.5, 27.4, 28.3, 29.2, 30.2, 31.1, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.1, 46.2, 47.3, 48.4, 49.4, 50.5, 51.5, 52.6, 53.6, 54.6, 55.7, 56.8, 57.8, 58.9, 59.9, 60.9, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.1, 82.1, 83.2, 84.3, 85.4, 86.5, 87.6, 88.7, 89.8, 91.0, 92.1, 93.1, 94.2, 95.2, 96.1, 96.9, 97.5};
    static final Double[] c12 = {0.0, 0.0, 1.1, 2.0, 3.0, 4.0, 5.0, 5.9, 6.8, 7.7, 8.6, 9.5, 10.5, 11.4, 12.3, 13.2, 14.1, 15.0, 15.9, 16.8, 17.7, 18.6, 19.5, 20.4, 21.4, 22.3, 23.2, 24.1, 25.0, 25.9, 26.9, 27.8, 28.7, 29.7, 30.6, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.5, 44.5, 45.6, 46.7, 47.7, 48.8, 49.9, 50.9, 51.9, 53.0, 54.0, 55.0, 56.1, 57.1, 58.2, 59.2, 60.3, 61.3, 62.3, 63.3, 64.3, 65.4, 66.4, 67.4, 68.4, 69.4, 70.3, 71.3, 72.3, 73.3, 74.3, 75.3, 76.3, 77.3, 78.3, 79.3, 80.4, 81.4, 82.4, 83.5, 84.6, 85.7, 86.8, 87.9, 89.0, 90.1, 91.2, 92.3, 93.3, 94.4, 95.4, 96.3, 97.1, 97.8};
    static final Double[] c13 = {0.0, 0.0, 1.2, 2.1, 3.1, 4.1, 5.1, 6.0, 6.9, 7.9, 8.8, 9.7, 10.6, 11.5, 12.4, 13.4, 14.3, 15.2, 16.1, 17.1, 18.0, 18.9, 19.8, 20.7, 21.6, 22.6, 23.5, 24.4, 25.4, 26.3, 27.3, 28.2, 29.2, 30.1, 31.0, 32.0, 32.9, 33.9, 34.9, 35.9, 36.9, 37.9, 38.9, 39.9, 40.9, 41.9, 42.9, 43.9, 45.0, 46.0, 47.1, 48.1, 49.2, 50.3, 51.3, 52.3, 53.3, 54.4, 55.4, 56.4, 57.5, 58.5, 59.6, 60.6, 61.6, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.7, 79.7, 80.7, 81.7, 82.8, 83.8, 84.9, 86.0, 87.1, 88.2, 89.3, 90.4, 91.4, 92.5, 93.6, 94.6, 95.6, 96.5, 97.3, 98.0};
    static final Double[] c14 = {0.0, 0.0, 1.3, 2.2, 3.2, 4.2, 5.2, 6.2, 7.1, 8.0, 8.9, 9.8, 10.8, 11.7, 12.6, 13.6, 14.5, 15.4, 16.4, 17.3, 18.2, 19.1, 20.1, 21.0, 21.9, 22.9, 23.8, 24.8, 25.8, 26.7, 27.7, 28.6, 29.6, 30.5, 31.5, 32.4, 33.4, 34.4, 35.4, 36.4, 37.4, 38.4, 39.4, 40.4, 41.4, 42.4, 43.4, 44.4, 45.4, 46.5, 47.5, 48.6, 49.6, 50.7, 51.7, 52.7, 53.7, 54.7, 55.8, 56.8, 57.9, 58.9, 59.9, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.1, 83.1, 84.1, 85.2, 86.3, 87.4, 88.4, 89.5, 90.6, 91.7, 92.7, 93.8, 94.8, 95.8, 96.7, 97.5, 98.3};
    static final Double[] c15 = {0.0, 0.0, 1.4, 2.3, 3.3, 4.3, 5.3, 6.3, 7.2, 8.1, 9.1, 10.0, 10.9, 11.8, 12.8, 13.7, 14.7, 15.6, 16.6, 17.5, 18.5, 19.4, 20.3, 21.3, 22.2, 23.2, 24.2, 25.1, 26.1, 27.1, 28.1, 29.0, 30.0, 31.0, 31.9, 32.9, 33.8, 34.8, 35.8, 36.8, 37.8, 38.8, 39.8, 40.8, 41.8, 42.8, 43.8, 44.8, 45.8, 46.9, 47.9, 49.0, 50.0, 51.1, 52.1, 53.1, 54.1, 55.1, 56.1, 57.2, 58.2, 59.3, 60.3, 61.3, 62.3, 63.3, 64.3, 65.3, 66.4, 67.4, 68.4, 69.4, 70.4, 71.3, 72.3, 73.3, 74.3, 75.3, 76.3, 77.3, 78.3, 79.3, 80.3, 81.4, 82.4, 83.4, 84.5, 85.5, 86.6, 87.6, 88.7, 89.8, 90.9, 91.9, 93.0, 94.0, 95.0, 96.0, 96.9, 97.8, 98.5};
    static final Double[] c16 = {0.0, 0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 6.4, 7.4, 8.3, 9.2, 10.2, 11.1, 12.1, 13.0, 14.0, 14.9, 15.9, 16.9, 17.8, 18.8, 19.7, 20.7, 21.6, 22.6, 23.6, 24.5, 25.5, 26.5, 27.5, 28.5, 29.4, 30.4, 31.4, 32.3, 33.3, 34.3, 35.3, 36.3, 37.3, 38.3, 39.3, 40.3, 41.3, 42.3, 43.3, 44.3, 45.3, 46.3, 47.3, 48.4, 49.4, 50.4, 51.5, 52.5, 53.5, 54.5, 55.5, 56.5, 57.5, 58.6, 59.6, 60.6, 61.7, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.7, 79.7, 80.7, 81.7, 82.7, 83.7, 84.8, 85.8, 86.9, 87.9, 89.0, 90.0, 91.1, 92.1, 93.2, 94.2, 95.2, 96.2, 97.1, 98.0, 98.8};
    static final Double[] c17 = {0.0, 0.6, 1.6, 2.6, 3.6, 4.6, 5.6, 6.6, 7.5, 8.5, 9.4, 10.4, 11.3, 12.3, 13.3, 14.2, 15.2, 16.2, 17.2, 18.1, 19.1, 20.0, 21.0, 22.0, 22.9, 23.9, 24.9, 25.9, 26.9, 27.9, 28.9, 29.8, 30.8, 31.8, 32.8, 33.7, 34.7, 35.7, 36.7, 37.7, 38.7, 39.7, 40.7, 41.7, 42.7, 43.7, 44.7, 45.7, 46.7, 47.7, 48.8, 49.8, 50.8, 51.9, 52.9, 53.9, 54.9, 55.9, 56.9, 57.9, 58.9, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.1, 85.1, 86.1, 87.2, 88.2, 89.2, 90.3, 91.3, 92.4, 93.4, 94.4, 95.4, 96.4, 97.3, 98.2, 99.1};
    static final Double[] c18 = {0.0, 0.7, 1.7, 2.7, 3.7, 4.7, 5.7, 6.7, 7.7, 8.7, 9.6, 10.6, 11.6, 12.5, 13.5, 14.5, 15.5, 16.5, 17.4, 18.4, 19.4, 20.4, 21.3, 22.3, 23.3, 24.3, 25.3, 26.3, 27.3, 28.2, 29.2, 30.2, 31.2, 32.2, 33.2, 34.2, 35.1, 36.1, 37.1, 38.1, 39.1, 40.1, 41.1, 42.1, 43.1, 44.1, 45.1, 46.1, 47.2, 48.2, 49.2, 50.2, 51.2, 52.2, 53.2, 54.2, 55.3, 56.3, 57.3, 58.3, 59.3, 60.3, 61.3, 62.3, 63.3, 64.3, 65.3, 66.3, 67.3, 68.3, 69.3, 70.3, 71.3, 72.3, 73.3, 74.3, 75.3, 76.3, 77.3, 78.3, 79.3, 80.3, 81.3, 82.4, 83.4, 84.4, 85.4, 86.4, 87.4, 88.5, 89.5, 90.5, 91.6, 92.6, 93.6, 94.6, 95.6, 96.6, 97.6, 98.5, 99.4};
    static final Double[] c19 = {0.0, 0.9, 1.9, 2.9, 3.9, 4.9, 5.9, 6.9, 7.8, 8.8, 9.8, 10.8, 11.8, 12.8, 13.8, 14.7, 15.7, 16.7, 17.7, 18.7, 19.7, 20.7, 21.7, 22.7, 23.6, 24.6, 25.6, 26.6, 27.6, 28.6, 29.6, 30.6, 31.6, 32.6, 33.6, 34.6, 35.6, 36.6, 37.6, 38.6, 39.6, 40.6, 41.6, 42.6, 43.6, 44.6, 45.6, 46.6, 47.6, 48.6, 49.6, 50.6, 51.6, 52.6, 53.6, 54.6, 55.6, 56.6, 57.6, 58.6, 59.6, 60.7, 61.7, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.7, 79.7, 80.7, 81.7, 82.7, 83.7, 84.7, 85.7, 86.7, 87.7, 88.7, 89.8, 90.8, 91.8, 92.8, 93.8, 94.8, 95.8, 96.8, 97.8, 98.7, 99.7};
    static final Double[] c20 = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0, 35.0, 36.0, 37.0, 38.0, 39.0, 40.0, 41.0, 42.0, 43.0, 44.0, 45.0, 46.0, 47.0, 48.0, 49.0, 50.0, 51.0, 52.0, 53.0, 54.0, 55.0, 56.0, 57.0, 58.0, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.0, 77.0, 78.0, 79.0, 80.0, 81.0, 82.0, 83.0, 84.0, 85.0, 86.0, 87.0, 88.0, 89.0, 90.0, 91.0, 92.0, 93.0, 94.0, 95.0, 96.0, 97.0, 98.0, 99.0, 100.0};
    static final Double[] c21 = {0.2, 1.2, 2.2, 3.2, 4.2, 5.2, 6.2, 7.2, 8.2, 9.2, 10.2, 11.2, 12.3, 13.3, 14.3, 15.3, 16.3, 17.3, 18.3, 19.3, 20.3, 21.4, 22.4, 23.4, 24.4, 25.4, 26.4, 27.4, 28.4, 29.4, 30.5, 31.5, 32.5, 33.5, 34.5, 35.5, 36.5, 37.5, 38.5, 39.4, 40.4, 41.4, 42.4, 43.4, 44.4, 45.4, 46.4, 47.4, 48.4, 49.4, 50.4, 51.4, 52.4, 53.4, 54.4, 55.4, 56.4, 57.4, 58.3, 59.3, 60.3, 61.3, 62.3, 63.3, 64.3, 65.3, 66.3, 67.3, 68.3, 69.3, 70.3, 71.3, 72.3, 73.3, 74.4, 75.4, 76.4, 77.4, 78.3, 79.3, 80.3, 81.3, 82.3, 83.3, 84.3, 85.3, 86.3, 87.3, 88.3, 89.3, 90.2, 91.2, 92.2, 93.2, 94.2, 95.2, 96.2, 97.2, 98.2, 99.3, 100.0};
    static final Double[] c22 = {0.3, 1.4, 2.4, 3.4, 4.4, 5.4, 6.4, 7.4, 8.4, 9.5, 10.5, 11.5, 12.5, 13.5, 14.6, 15.6, 16.6, 17.6, 18.7, 19.7, 20.7, 21.7, 22.7, 23.7, 24.7, 25.8, 26.8, 27.8, 28.9, 29.9, 30.9, 31.9, 32.9, 33.9, 34.9, 35.9, 36.9, 37.9, 38.9, 39.9, 40.9, 41.9, 42.9, 43.8, 44.8, 45.8, 46.8, 47.8, 48.8, 49.8, 50.8, 51.8, 52.8, 53.8, 54.7, 55.7, 56.7, 57.7, 58.7, 59.7, 60.7, 61.7, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.7, 79.7, 80.7, 81.7, 82.7, 83.6, 84.6, 85.6, 86.6, 87.6, 88.5, 89.5, 90.5, 91.5, 92.4, 93.4, 94.4, 95.4, 96.4, 97.4, 98.5, 99.5, 100.0};
    static final Double[] c23 = {0.5, 1.5, 2.5, 3.6, 4.6, 5.6, 6.6, 7.6, 8.6, 9.7, 10.7, 11.7, 12.8, 13.8, 14.8, 15.9, 16.9, 18.0, 19.0, 20.0, 21.0, 22.1, 23.1, 24.1, 25.1, 26.1, 27.2, 28.2, 29.3, 30.3, 31.4, 32.4, 33.4, 34.4, 35.4, 36.4, 37.4, 38.4, 39.3, 40.3, 41.3, 42.3, 43.3, 44.3, 45.2, 46.2, 47.2, 48.2, 49.2, 50.2, 51.2, 52.2, 53.1, 54.1, 55.1, 56.1, 57.1, 58.1, 59.0, 60.0, 61.0, 62.0, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.0, 73.0, 74.0, 75.0, 76.1, 77.1, 78.1, 79.0, 80.0, 81.0, 82.0, 83.0, 83.9, 84.9, 85.9, 86.9, 87.8, 88.8, 89.8, 90.7, 91.7, 92.7, 93.6, 94.6, 95.6, 96.6, 97.6, 98.7, 99.8, 100.0};
    static final Double[] c24 = {0.7, 1.7, 2.7, 3.8, 4.8, 5.8, 6.8, 7.8, 8.9, 9.9, 10.9, 12.0, 13.0, 14.1, 15.1, 16.2, 17.2, 18.3, 19.3, 20.4, 21.4, 22.4, 23.4, 24.5, 25.5, 26.5, 27.6, 28.6, 29.7, 30.8, 31.8, 32.8, 33.8, 34.8, 35.8, 36.8, 37.8, 38.8, 39.8, 40.8, 41.7, 42.7, 43.7, 44.7, 45.7, 46.6, 47.6, 48.6, 49.6, 50.6, 51.5, 52.5, 53.5, 54.5, 55.5, 56.4, 57.4, 58.4, 59.4, 60.4, 61.4, 62.4, 63.4, 64.3, 65.3, 66.3, 67.4, 68.4, 69.4, 70.4, 71.4, 72.4, 73.4, 74.4, 75.4, 76.4, 77.4, 78.4, 79.4, 80.4, 81.3, 82.3, 83.3, 84.3, 85.2, 86.2, 87.1, 88.1, 89.1, 90.0, 91.0, 91.9, 92.9, 93.8, 94.8, 95.8, 96.8, 97.9, 99.0, 100.0, 100.0};
    static final Double[] c25 = {0.8, 1.9, 2.9, 3.9, 5.0, 6.0, 7.0, 8.0, 9.1, 10.1, 11.2, 12.2, 13.3, 14.3, 15.4, 16.5, 17.5, 18.6, 19.7, 20.7, 21.7, 22.8, 23.8, 24.8, 25.8, 26.9, 28.0, 29.1, 30.1, 31.2, 32.3, 33.3, 34.3, 35.3, 36.3, 37.3, 38.3, 39.3, 40.2, 41.2, 42.2, 43.1, 44.1, 45.1, 46.1, 47.0, 48.0, 49.0, 50.0, 50.9, 51.9, 52.9, 53.9, 54.9, 55.8, 56.8, 57.8, 58.7, 59.7, 60.7, 61.7, 62.7, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.7, 79.7, 80.7, 81.7, 82.6, 83.6, 84.6, 85.5, 86.5, 87.4, 88.4, 89.3, 90.3, 91.2, 92.2, 93.1, 94.1, 95.0, 96.0, 97.0, 98.1, 99.2, 100.0, 100.0};
    static final Double[] c26 = {1.1, 2.1, 3.1, 4.2, 5.2, 6.2, 7.3, 8.3, 9.4, 10.4, 11.5, 12.5, 13.6, 14.6, 15.7, 16.8, 17.9, 18.9, 20.0, 21.1, 22.1, 23.1, 24.2, 25.2, 26.2, 27.3, 28.4, 29.5, 30.6, 31.6, 32.7, 33.7, 34.7, 35.7, 36.7, 37.7, 38.7, 39.7, 40.7, 41.7, 42.6, 43.6, 44.6, 45.5, 46.5, 47.4, 48.4, 49.4, 50.4, 51.3, 52.3, 53.3, 54.3, 55.3, 56.2, 57.2, 58.1, 59.1, 60.1, 61.1, 62.1, 63.0, 64.0, 65.0, 66.0, 67.0, 68.0, 69.0, 70.0, 71.0, 72.1, 73.1, 74.1, 75.1, 76.1, 77.1, 78.1, 79.1, 80.1, 81.0, 82.0, 83.0, 83.9, 84.9, 85.8, 86.8, 87.7, 88.6, 89.6, 90.5, 91.4, 92.4, 93.3, 94.3, 95.2, 96.2, 97.3, 98.3, 99.5, 100.0, 100.0};
    static final Double[] c27 = {1.3, 2.3, 3.4, 4.4, 5.5, 6.5, 7.5, 8.6, 9.6, 10.7, 11.8, 12.8, 13.9, 14.9, 16.0, 17.1, 18.2, 19.3, 20.4, 21.4, 22.5, 23.5, 24.6, 25.6, 26.6, 27.7, 28.8, 29.9, 31.0, 32.1, 33.1, 34.2, 35.2, 36.2, 37.2, 38.2, 39.2, 40.2, 41.1, 42.1, 43.1, 44.0, 45.0, 46.0, 46.9, 47.9, 48.8, 49.8, 50.7, 51.7, 52.7, 53.7, 54.7, 55.6, 56.6, 57.5, 58.5, 59.5, 60.5, 61.4, 62.4, 63.4, 64.4, 65.4, 66.4, 67.4, 68.4, 69.4, 70.4, 71.4, 72.4, 73.4, 74.4, 75.4, 76.4, 77.4, 78.4, 79.4, 80.4, 81.4, 82.3, 83.3, 84.2, 85.2, 86.1, 87.0, 88.0, 88.9, 89.8, 90.8, 91.7, 92.6, 93.5, 94.5, 95.4, 96.4, 97.5, 98.6, 99.8, 100.0, 100.0};
    static final Double[] c28 = {1.5, 2.5, 3.6, 4.7, 5.7, 6.7, 7.8, 8.8, 9.9, 11.0, 12.0, 13.1, 14.1, 15.2, 16.3, 17.4, 18.5, 19.6, 20.7, 21.8, 22.9, 23.9, 25.0, 26.0, 27.0, 28.1, 29.2, 30.3, 31.4, 32.5, 33.6, 34.6, 35.6, 36.6, 37.6, 38.6, 39.6, 40.6, 41.6, 42.5, 43.5, 44.5, 45.4, 46.4, 47.3, 48.3, 49.2, 50.2, 51.1, 52.1, 53.1, 54.1, 55.0, 56.0, 57.0, 57.9, 58.9, 59.8, 60.8, 61.8, 62.8, 63.7, 64.7, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.7, 72.7, 73.7, 74.7, 75.7, 76.7, 77.7, 78.7, 79.7, 80.7, 81.7, 82.6, 83.6, 84.5, 85.5, 86.4, 87.3, 88.3, 89.2, 90.1, 91.0, 91.9, 92.8, 93.8, 94.7, 95.7, 96.7, 97.7, 98.8, 100.0, 100.0, 100.0};
    static final Double[] c29 = {1.7, 2.8, 3.8, 4.9, 6.0, 7.0, 8.1, 9.1, 10.2, 11.3, 12.3, 13.4, 14.4, 15.5, 16.6, 17.8, 18.9, 20.0, 21.1, 22.2, 23.2, 24.3, 25.4, 26.4, 27.5, 28.5, 29.6, 30.7, 31.8, 32.9, 34.0, 35.0, 36.0, 37.1, 38.1, 39.1, 40.1, 41.0, 42.0, 43.0, 44.0, 44.9, 45.9, 46.8, 47.8, 48.7, 49.6, 50.6, 51.5, 52.5, 53.5, 54.4, 55.4, 56.4, 57.3, 58.3, 59.2, 60.2, 61.2, 62.1, 63.1, 64.1, 65.0, 66.0, 67.0, 68.0, 69.0, 70.1, 71.1, 72.1, 73.1, 74.1, 75.1, 76.1, 77.1, 78.1, 79.1, 80.1, 81.0, 82.0, 83.0, 83.9, 84.8, 85.8, 86.7, 87.6, 88.5, 89.4, 90.3, 91.2, 92.1, 93.1, 94.0, 94.9, 95.9, 96.9, 97.9, 99.1, 100.0, 100.0, 100.0};
    static final Double[] c30 = {1.9, 3.0, 4.1, 5.1, 6.2, 7.3, 8.3, 9.4, 10.5, 11.5, 12.6, 13.7, 14.7, 15.8, 17.0, 18.1, 19.2, 20.3, 21.4, 22.5, 23.6, 24.7, 25.7, 26.8, 27.8, 28.9, 30.0, 31.1, 32.2, 33.3, 34.4, 35.5, 36.5, 37.5, 38.5, 39.5, 40.5, 41.5, 42.5, 43.4, 44.4, 45.3, 46.3, 47.2, 48.2, 49.1, 50.0, 50.9, 51.9, 52.9, 53.8, 54.8, 55.8, 56.7, 57.7, 58.6, 59.6, 60.6, 61.5, 62.5, 63.4, 64.4, 65.4, 66.4, 67.4, 68.4, 69.4, 70.4, 71.4, 72.4, 73.4, 74.4, 75.4, 76.4, 77.4, 78.4, 79.4, 80.4, 81.4, 82.3, 83.3, 84.2, 85.1, 86.1, 87.0, 87.9, 88.8, 89.7, 90.6, 91.5, 92.4, 93.3, 94.2, 95.1, 96.1, 97.1, 98.2, 99.4, 100.0, 100.0, 100.0};
    static final Double[] c31 = {2.1, 3.2, 4.3, 5.4, 6.5, 7.5, 8.6, 9.7, 10.8, 11.8, 12.9, 14.0, 15.0, 16.2, 17.3, 18.4, 19.6, 20.7, 21.8, 22.9, 24.0, 25.1, 26.1, 27.2, 28.3, 29.3, 30.5, 31.6, 32.6, 33.7, 34.8, 35.9, 36.9, 37.9, 38.9, 39.9, 40.9, 41.9, 42.9, 43.9, 44.8, 45.8, 46.8, 47.7, 48.6, 49.5, 50.4, 51.3, 52.3, 53.2, 54.2, 55.2, 56.1, 57.1, 58.0, 59.0, 60.0, 60.9, 61.9, 62.8, 63.8, 64.8, 65.7, 66.7, 67.7, 68.7, 69.7, 70.7, 71.8, 72.8, 73.8, 74.8, 75.8, 76.8, 77.8, 78.8, 79.7, 80.7, 81.7, 82.6, 83.6, 84.5, 85.5, 86.4, 87.3, 88.2, 89.1, 90.0, 90.8, 91.7, 92.6, 93.5, 94.4, 95.3, 96.3, 97.3, 98.4, 99.6, 100.0, 100.0, 100.0};
    static final Double[] c32 = {2.4, 3.5, 4.6, 5.7, 6.8, 7.8, 8.9, 10.0, 11.1, 12.2, 13.2, 14.3, 15.4, 16.5, 17.6, 18.8, 19.9, 21.0, 22.1, 23.2, 24.3, 25.4, 26.5, 27.6, 28.7, 29.8, 30.9, 32.0, 33.1, 34.1, 35.2, 36.3, 37.3, 38.3, 39.4, 40.4, 41.4, 42.4, 43.3, 44.3, 45.3, 46.2, 47.2, 48.1, 49.0, 49.9, 50.8, 51.7, 52.7, 53.6, 54.6, 55.5, 56.5, 57.4, 58.4, 59.3, 60.3, 61.3, 62.2, 63.2, 64.1, 65.1, 66.1, 67.1, 68.1, 69.1, 70.1, 71.1, 72.1, 73.1, 74.1, 75.1, 76.1, 77.1, 78.1, 79.1, 80.1, 81.1, 82.0, 83.0, 83.9, 84.9, 85.8, 86.7, 87.6, 88.5, 89.3, 90.2, 91.1, 92.0, 92.8, 93.7, 94.6, 95.5, 96.5, 97.5, 98.7, 99.9, 100.0, 100.0, 100.0};
    static final Double[] c33 = {2.6, 3.7, 4.8, 5.9, 7.0, 8.1, 9.2, 10.3, 11.4, 12.5, 13.5, 14.6, 15.7, 16.8, 18.0, 19.1, 20.2, 21.4, 22.5, 23.6, 24.7, 25.8, 26.9, 28.0, 29.1, 30.2, 31.3, 32.4, 33.5, 34.5, 35.6, 36.7, 37.7, 38.8, 39.8, 40.8, 41.8, 42.8, 43.8, 44.7, 45.7, 46.7, 47.6, 48.5, 49.4, 50.3, 51.2, 52.1, 53.1, 54.0, 54.9, 55.9, 56.8, 57.8, 58.7, 59.7, 60.6, 61.6, 62.6, 63.5, 64.5, 65.5, 66.4, 67.4, 68.4, 69.4, 70.4, 71.4, 72.4, 73.4, 74.4, 75.4, 76.4, 77.4, 78.4, 79.4, 80.4, 81.4, 82.4, 83.3, 84.2, 85.2, 86.1, 87.0, 87.9, 88.7, 89.6, 90.5, 91.3, 92.2, 93.1, 93.9, 94.8, 95.8, 96.7, 97.8, 98.9, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c34 = {2.8, 4.0, 5.1, 6.2, 7.3, 8.4, 9.5, 10.6, 11.7, 12.8, 13.9, 14.9, 16.0, 17.1, 18.3, 19.4, 20.6, 21.7, 22.8, 23.9, 25.0, 26.2, 27.3, 28.4, 29.5, 30.6, 31.7, 32.8, 33.9, 34.9, 36.0, 37.1, 38.1, 39.2, 40.2, 41.2, 42.2, 43.2, 44.2, 45.2, 46.1, 47.1, 48.1, 49.0, 49.8, 50.7, 51.6, 52.5, 53.4, 54.4, 55.3, 56.3, 57.2, 58.1, 59.1, 60.0, 61.0, 62.0, 62.9, 63.9, 64.8, 65.8, 66.8, 67.8, 68.8, 69.8, 70.8, 71.8, 72.8, 73.8, 74.8, 75.8, 76.8, 77.8, 78.8, 79.8, 80.8, 81.7, 82.7, 83.6, 84.6, 85.5, 86.4, 87.3, 88.2, 89.0, 89.9, 90.7, 91.6, 92.4, 93.3, 94.1, 95.0, 96.0, 96.9, 98.0, 99.2, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c35 = {3.1, 4.2, 5.4, 6.5, 7.6, 8.7, 9.8, 10.9, 12.0, 13.1, 14.2, 15.3, 16.3, 17.5, 18.6, 19.8, 20.9, 22.0, 23.2, 24.3, 25.4, 26.5, 27.7, 28.8, 29.9, 31.0, 32.1, 33.2, 34.3, 35.3, 36.4, 37.5, 38.5, 39.6, 40.6, 41.6, 42.7, 43.7, 44.6, 45.6, 46.6, 47.5, 48.5, 49.4, 50.2, 51.1, 52.0, 52.9, 53.8, 54.7, 55.7, 56.6, 57.5, 58.5, 59.4, 60.4, 61.3, 62.3, 63.3, 64.2, 65.2, 66.2, 67.1, 68.1, 69.1, 70.1, 71.1, 72.1, 73.1, 74.1, 75.1, 76.1, 77.1, 78.1, 79.1, 80.1, 81.1, 82.1, 83.0, 84.0, 84.9, 85.8, 86.7, 87.6, 88.4, 89.3, 90.1, 91.0, 91.8, 92.7, 93.5, 94.4, 95.2, 96.2, 97.2, 98.3, 99.5, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c36 = {3.4, 4.5, 5.7, 6.8, 7.9, 9.0, 10.1, 11.2, 12.3, 13.4, 14.5, 15.6, 16.7, 17.9, 19.0, 20.1, 21.3, 22.4, 23.5, 24.7, 25.8, 26.9, 28.1, 29.2, 30.3, 31.4, 32.5, 33.6, 34.7, 35.8, 36.9, 37.9, 39.0, 40.0, 41.1, 42.1, 43.1, 44.1, 45.1, 46.0, 47.0, 47.9, 48.9, 49.8, 50.6, 51.5, 52.4, 53.3, 54.2, 55.1, 56.0, 57.0, 57.9, 58.9, 59.8, 60.7, 61.7, 62.6, 63.6, 64.6, 65.5, 66.5, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.4, 82.4, 83.4, 84.3, 85.2, 86.1, 87.0, 87.9, 88.7, 89.6, 90.4, 91.2, 92.1, 92.9, 93.7, 94.6, 95.5, 96.4, 97.4, 98.5, 99.7, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c37 = {3.7, 4.8, 6.0, 7.1, 8.2, 9.3, 10.4, 11.5, 12.7, 13.8, 14.9, 16.0, 17.1, 18.2, 19.4, 20.5, 21.7, 22.8, 23.9, 25.1, 26.2, 27.3, 28.5, 29.6, 30.7, 31.8, 32.9, 34.1, 35.2, 36.2, 37.3, 38.4, 39.4, 40.5, 41.5, 42.5, 43.5, 44.5, 45.5, 46.4, 47.4, 48.3, 49.3, 50.2, 51.0, 51.9, 52.8, 53.7, 54.6, 55.5, 56.4, 57.3, 58.3, 59.2, 60.1, 61.1, 62.0, 63.0, 64.0, 64.9, 65.9, 66.8, 67.8, 68.8, 69.8, 70.8, 71.8, 72.8, 73.8, 74.8, 75.8, 76.8, 77.8, 78.8, 79.8, 80.8, 81.8, 82.8, 83.7, 84.6, 85.5, 86.4, 87.3, 88.1, 89.0, 89.8, 90.6, 91.5, 92.3, 93.1, 93.9, 94.8, 95.7, 96.6, 97.6, 98.8, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c38 = {4.0, 5.1, 6.3, 7.4, 8.5, 9.6, 10.7, 11.9, 13.0, 14.1, 15.3, 16.4, 17.5, 18.6, 19.8, 20.9, 22.1, 23.2, 24.3, 25.4, 26.6, 27.7, 28.9, 30.0, 31.1, 32.2, 33.4, 34.5, 35.6, 36.7, 37.8, 38.8, 39.9, 40.9, 41.9, 42.9, 43.9, 44.9, 45.9, 46.8, 47.8, 48.7, 49.7, 50.5, 51.4, 52.3, 53.1, 54.0, 54.9, 55.8, 56.8, 57.7, 58.6, 59.6, 60.5, 61.4, 62.4, 63.3, 64.3, 65.2, 66.2, 67.2, 68.1, 69.1, 70.1, 71.1, 72.2, 73.2, 74.2, 75.2, 76.2, 77.2, 78.1, 79.1, 80.2, 81.2, 82.1, 83.1, 84.0, 84.9, 85.8, 86.7, 87.6, 88.4, 89.3, 90.1, 90.9, 91.7, 92.5, 93.3, 94.2, 95.0, 95.9, 96.8, 97.9, 99.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c39 = {4.3, 5.4, 6.6, 7.7, 8.9, 10.0, 11.0, 12.2, 13.3, 14.5, 15.6, 16.8, 17.9, 19.0, 20.2, 21.3, 22.4, 23.6, 24.7, 25.8, 27.0, 28.1, 29.3, 30.4, 31.5, 32.6, 33.8, 34.9, 36.0, 37.1, 38.2, 39.3, 40.3, 41.3, 42.3, 43.3, 44.3, 45.3, 46.3, 47.2, 48.2, 49.1, 50.1, 50.9, 51.8, 52.6, 53.5, 54.4, 55.3, 56.2, 57.1, 58.1, 59.0, 59.9, 60.9, 61.8, 62.7, 63.7, 64.6, 65.6, 66.5, 67.5, 68.5, 69.4, 70.5, 71.5, 72.5, 73.5, 74.5, 75.5, 76.5, 77.5, 78.5, 79.5, 80.5, 81.5, 82.5, 83.4, 84.4, 85.3, 86.2, 87.0, 87.9, 88.7, 89.5, 90.3, 91.1, 91.9, 92.7, 93.6, 94.4, 95.2, 96.1, 97.1, 98.1, 99.3, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c40 = {4.6, 5.7, 6.9, 8.0, 9.2, 10.3, 11.4, 12.5, 13.7, 14.8, 16.0, 17.1, 18.3, 19.4, 20.6, 21.7, 22.8, 24.0, 25.1, 26.2, 27.3, 28.5, 29.7, 30.8, 31.9, 33.0, 34.2, 35.3, 36.5, 37.6, 38.7, 39.7, 40.8, 41.8, 42.8, 43.7, 44.7, 45.7, 46.7, 47.6, 48.6, 49.5, 50.4, 51.3, 52.2, 53.0, 53.9, 54.8, 55.6, 56.6, 57.5, 58.4, 59.3, 60.3, 61.2, 62.1, 63.1, 64.0, 65.0, 65.9, 66.9, 67.8, 68.8, 69.8, 70.8, 71.8, 72.8, 73.9, 74.9, 75.9, 76.9, 77.8, 78.8, 79.8, 80.8, 81.8, 82.8, 83.8, 84.7, 85.6, 86.5, 87.3, 88.2, 89.0, 89.8, 90.6, 91.4, 92.2, 93.0, 93.8, 94.6, 95.4, 96.3, 97.3, 98.4, 99.6, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c41 = {4.9, 6.1, 7.3, 8.4, 9.5, 10.6, 11.7, 12.9, 14.1, 15.2, 16.4, 17.5, 18.7, 19.8, 21.0, 22.1, 23.3, 24.4, 25.5, 26.7, 27.8, 29.0, 30.1, 31.2, 32.4, 33.5, 34.7, 35.8, 36.9, 38.0, 39.1, 40.2, 41.2, 42.2, 43.2, 44.2, 45.2, 46.1, 47.1, 48.0, 49.0, 49.9, 50.8, 51.7, 52.5, 53.4, 54.3, 55.1, 56.0, 56.9, 57.8, 58.8, 59.7, 60.6, 61.6, 62.5, 63.4, 64.4, 65.3, 66.3, 67.2, 68.2, 69.1, 70.1, 71.1, 72.2, 73.2, 74.2, 75.3, 76.2, 77.2, 78.2, 79.2, 80.2, 81.2, 82.2, 83.1, 84.1, 85.0, 85.9, 86.8, 87.6, 88.4, 89.2, 90.0, 90.8, 91.6, 92.4, 93.2, 94.0, 94.8, 95.6, 96.6, 97.5, 98.6, 99.9, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c42 = {5.2, 6.4, 7.6, 8.8, 9.9, 11.0, 12.1, 13.3, 14.5, 15.6, 16.8, 18.0, 19.1, 20.2, 21.4, 22.6, 23.7, 24.8, 26.0, 27.1, 28.2, 29.4, 30.6, 31.7, 32.8, 34.0, 35.1, 36.2, 37.4, 38.5, 39.6, 40.6, 41.6, 42.6, 43.6, 44.6, 45.6, 46.6, 47.5, 48.4, 49.4, 50.3, 51.2, 52.1, 52.9, 53.8, 54.6, 55.5, 56.4, 57.3, 58.2, 59.1, 60.1, 61.0, 61.9, 62.8, 63.8, 64.7, 65.7, 66.6, 67.5, 68.5, 69.5, 70.5, 71.5, 72.5, 73.6, 74.6, 75.6, 76.6, 77.6, 78.5, 79.5, 80.5, 81.5, 82.5, 83.5, 84.4, 85.3, 86.2, 87.1, 87.9, 88.7, 89.5, 90.3, 91.1, 91.8, 92.6, 93.4, 94.2, 95.0, 95.9, 96.8, 97.8, 98.9, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c43 = {5.6, 6.8, 8.0, 9.1, 10.3, 11.4, 12.5, 13.7, 14.9, 16.0, 17.2, 18.4, 19.5, 20.7, 21.8, 23.0, 24.1, 25.3, 26.4, 27.6, 28.7, 29.9, 31.0, 32.1, 33.3, 34.4, 35.5, 36.7, 37.8, 38.9, 40.0, 41.0, 42.1, 43.1, 44.1, 45.0, 46.0, 47.0, 47.9, 48.9, 49.8, 50.7, 51.6, 52.5, 53.3, 54.2, 55.0, 55.9, 56.8, 57.7, 58.6, 59.5, 60.4, 61.3, 62.2, 63.2, 64.1, 65.1, 66.0, 66.9, 67.9, 68.9, 69.8, 70.8, 71.8, 72.9, 73.9, 75.0, 76.0, 77.0, 77.9, 78.9, 79.8, 80.8, 81.8, 82.8, 83.8, 84.8, 85.6, 86.5, 87.4, 88.2, 89.0, 89.8, 90.6, 91.3, 92.1, 92.9, 93.6, 94.4, 95.2, 96.1, 97.0, 98.0, 99.2, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c44 = {5.9, 7.1, 8.3, 9.5, 10.6, 11.8, 12.9, 14.0, 15.2, 16.4, 17.6, 18.8, 19.9, 21.1, 22.3, 23.4, 24.6, 25.7, 26.9, 28.0, 29.1, 30.3, 31.5, 32.6, 33.7, 34.8, 36.0, 37.1, 38.2, 39.3, 40.4, 41.5, 42.5, 43.5, 44.5, 45.5, 46.4, 47.4, 48.3, 49.3, 50.2, 51.1, 52.0, 52.9, 53.7, 54.5, 55.4, 56.2, 57.1, 58.0, 58.9, 59.8, 60.8, 61.7, 62.6, 63.5, 64.4, 65.4, 66.3, 67.3, 68.2, 69.2, 70.2, 71.1, 72.2, 73.2, 74.3, 75.3, 76.3, 77.3, 78.3, 79.2, 80.2, 81.2, 82.2, 83.2, 84.1, 85.1, 86.0, 86.8, 87.7, 88.5, 89.3, 90.0, 90.8, 91.6, 92.3, 93.1, 93.8, 94.6, 95.4, 96.3, 97.2, 98.3, 99.5, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c45 = {6.2, 7.4, 8.7, 9.8, 11.0, 12.1, 13.2, 14.4, 15.6, 16.8, 18.0, 19.2, 20.3, 21.5, 22.7, 23.9, 25.0, 26.2, 27.3, 28.4, 29.6, 30.8, 31.9, 33.0, 34.1, 35.3, 36.4, 37.5, 38.7, 39.8, 40.8, 41.9, 42.9, 43.9, 44.9, 45.9, 46.9, 47.8, 48.7, 49.7, 50.6, 51.5, 52.4, 53.2, 54.1, 54.9, 55.8, 56.6, 57.5, 58.4, 59.3, 60.2, 61.1, 62.0, 62.9, 63.8, 64.8, 65.7, 66.7, 67.6, 68.6, 69.5, 70.5, 71.5, 72.5, 73.6, 74.6, 75.7, 76.7, 77.7, 78.6, 79.6, 80.5, 81.5, 82.5, 83.5, 84.4, 85.4, 86.3, 87.1, 87.9, 88.8, 89.5, 90.3, 91.1, 91.8, 92.5, 93.3, 94.1, 94.8, 95.7, 96.5, 97.5, 98.6, 99.8, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c46 = {6.5, 7.8, 9.0, 10.2, 11.3, 12.5, 13.6, 14.8, 16.0, 17.2, 18.4, 19.6, 20.7, 21.9, 23.1, 24.3, 25.4, 26.6, 27.7, 28.9, 30.0, 31.2, 32.3, 33.5, 34.6, 35.7, 36.9, 38.0, 39.1, 40.2, 41.3, 42.3, 43.3, 44.3, 45.3, 46.3, 47.3, 48.2, 49.1, 50.1, 51.0, 51.9, 52.8, 53.6, 54.4, 55.3, 56.1, 57.0, 57.8, 58.7, 59.6, 60.5, 61.4, 62.4, 63.3, 64.2, 65.1, 66.1, 67.0, 68.0, 68.9, 69.9, 70.8, 71.8, 72.9, 73.9, 75.0, 76.0, 77.0, 78.0, 79.0, 79.9, 80.9, 81.8, 82.8, 83.8, 84.8, 85.7, 86.6, 87.4, 88.2, 89.0, 89.8, 90.6, 91.3, 92.0, 92.8, 93.5, 94.3, 95.1, 95.9, 96.8, 97.7, 98.8, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c47 = {6.9, 8.1, 9.4, 10.5, 11.7, 12.9, 14.0, 15.2, 16.4, 17.6, 18.8, 20.0, 21.2, 22.3, 23.5, 24.7, 25.9, 27.0, 28.2, 29.3, 30.4, 31.6, 32.8, 33.9, 35.0, 36.1, 37.3, 38.4, 39.5, 40.6, 41.7, 42.7, 43.7, 44.7, 45.7, 46.7, 47.7, 48.6, 49.5, 50.4, 51.4, 52.3, 53.2, 54.0, 54.8, 55.6, 56.5, 57.3, 58.2, 59.1, 60.0, 60.9, 61.8, 62.7, 63.6, 64.5, 65.5, 66.4, 67.4, 68.3, 69.2, 70.2, 71.2, 72.2, 73.2, 74.3, 75.3, 76.4, 77.4, 78.4, 79.3, 80.2, 81.2, 82.2, 83.2, 84.1, 85.1, 86.0, 86.9, 87.7, 88.5, 89.3, 90.1, 90.8, 91.5, 92.3, 93.0, 93.7, 94.5, 95.3, 96.1, 97.0, 98.0, 99.1, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c48 = {7.2, 8.5, 9.7, 10.9, 12.1, 13.2, 14.4, 15.6, 16.8, 18.0, 19.2, 20.4, 21.6, 22.7, 23.9, 25.1, 26.3, 27.4, 28.6, 29.7, 30.8, 32.1, 33.2, 34.3, 35.4, 36.6, 37.7, 38.8, 39.9, 41.0, 42.1, 43.1, 44.1, 45.1, 46.1, 47.1, 48.1, 49.0, 49.9, 50.8, 51.7, 52.6, 53.5, 54.4, 55.2, 56.0, 56.8, 57.7, 58.5, 59.4, 60.3, 61.2, 62.1, 63.0, 63.9, 64.9, 65.8, 66.7, 67.7, 68.6, 69.6, 70.5, 71.5, 72.5, 73.6, 74.6, 75.7, 76.7, 77.8, 78.7, 79.6, 80.6, 81.5, 82.5, 83.5, 84.4, 85.4, 86.3, 87.2, 88.0, 88.8, 89.6, 90.3, 91.1, 91.8, 92.5, 93.2, 94.0, 94.7, 95.5, 96.3, 97.2, 98.2, 99.4, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c49 = {7.6, 8.8, 10.1, 11.3, 12.4, 13.6, 14.7, 15.9, 17.2, 18.4, 19.6, 20.8, 22.0, 23.2, 24.4, 25.5, 26.7, 27.9, 29.0, 30.2, 31.3, 32.5, 33.6, 34.7, 35.9, 37.0, 38.1, 39.2, 40.3, 41.4, 42.5, 43.5, 44.5, 45.5, 46.5, 47.5, 48.5, 49.4, 50.3, 51.2, 52.1, 53.0, 53.9, 54.7, 55.5, 56.4, 57.2, 58.0, 58.9, 59.8, 60.7, 61.6, 62.5, 63.4, 64.3, 65.2, 66.1, 67.1, 68.0, 69.0, 69.9, 70.9, 71.9, 72.8, 73.9, 75.0, 76.0, 77.1, 78.1, 79.0, 80.0, 80.9, 81.8, 82.8, 83.8, 84.8, 85.7, 86.6, 87.5, 88.3, 89.1, 89.8, 90.6, 91.3, 92.0, 92.7, 93.4, 94.2, 94.9, 95.7, 96.5, 97.4, 98.5, 99.7, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};
    static final Double[] c50 = {7.9, 9.2, 10.4, 11.6, 12.8, 14.0, 15.1, 16.3, 17.6, 18.8, 20.0, 21.2, 22.4, 23.6, 24.8, 26.0, 27.1, 28.3, 29.4, 30.6, 31.7, 32.9, 34.0, 35.2, 36.3, 37.4, 38.5, 39.6, 40.7, 41.8, 42.9, 43.9, 44.9, 45.9, 46.9, 47.9, 48.9, 49.8, 50.7, 51.6, 52.5, 53.4, 54.3, 55.1, 55.9, 56.7, 57.5, 58.4, 59.2, 60.1, 61.0, 61.9, 62.8, 63.7, 64.6, 65.5, 66.5, 67.4, 68.4, 69.3, 70.3, 71.2, 72.2, 73.2, 74.2, 75.3, 76.4, 77.4, 78.4, 79.4, 80.3, 81.3, 82.2, 83.1, 84.1, 85.1, 86.0, 86.9, 87.7, 88.5, 89.3, 90.1, 90.8, 91.5, 92.2, 92.9, 93.6, 94.4, 95.1, 95.9, 96.8, 97.7, 98.7, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0, 100.0};

    public static Double GetSG(Double measSG, String temp) {
        Double corrSG = 0.0;                    // the corrected abv    	
        String sgCorrection = getSGCorrection(temp);        // an array containing the abv to correct at a given temperature
        corrSG = measSG + Double.valueOf(sgCorrection);    // getting the corrected abv given the measured abv and the array just found
        return corrSG;
    }


    static Double[] getAbvArray_orig(String temp) {

        Hashtable hashtable = new Hashtable();
        hashtable.put("0 C", c0); //adding value to Hashtable       
        hashtable.put("1 C", c1);
        hashtable.put("2 C", c2);
        hashtable.put("3 C", c3);
        hashtable.put("4 C", c4);
        hashtable.put("5 C", c5);
        hashtable.put("6 C", c6);
        hashtable.put("7 C", c7);
        hashtable.put("8 C", c8);
        hashtable.put("9 C", c9);
        hashtable.put("10 C", c10);
        hashtable.put("11 C", c11);
        hashtable.put("12 C", c12);
        hashtable.put("13 C", c13);
        hashtable.put("14 C", c14);
        hashtable.put("15 C", c15);
        hashtable.put("16 C", c16);
        hashtable.put("17 C", c17);
        hashtable.put("18 C", c18);
        hashtable.put("19 C", c19);
        hashtable.put("20 C", c20);
        hashtable.put("21 C", c21);
        hashtable.put("22 C", c22);
        hashtable.put("23 C", c23);
        hashtable.put("24 C", c24);
        hashtable.put("25 C", c25);
        hashtable.put("26 C", c26);
        hashtable.put("27 C", c27);
        hashtable.put("28 C", c28);
        hashtable.put("29 C", c29);
        hashtable.put("30 C", c30);
        hashtable.put("31 C", c31);
        hashtable.put("32 C", c32);
        hashtable.put("33 C", c33);
        hashtable.put("34 C", c34);
        hashtable.put("35 C", c35);
        hashtable.put("36 C", c36);
        hashtable.put("37 C", c37);
        hashtable.put("38 C", c38);
        hashtable.put("39 C", c39);
        hashtable.put("40 C", c40);
        hashtable.put("41 C", c41);
        hashtable.put("42 C", c42);
        hashtable.put("43 C", c43);
        hashtable.put("44 C", c44);
        hashtable.put("45 C", c45);
        hashtable.put("46 C", c46);
        hashtable.put("47 C", c47);
        hashtable.put("48 C", c48);
        hashtable.put("49 C", c49);
        hashtable.put("50 C", c50);
        Double[] output = (Double[]) hashtable.get(temp);
        return output;
    }

    //==========================================================================================================================================
    //==========================================================================================================================================
    public static Integer GetABV(Double measAbv, String temp) {
        Integer corrABV = 0;                    // the corrected abv    	
        Double[] abvs = getAbvArray(temp);        // an array containing the abv to correct at a given temperature
        corrABV = GetCorrABV(measAbv, abvs);    // getting the corrected abv given the measured abv and the array just found
        return corrABV;
    }

    static Integer GetCorrABV(Double measAbv, Double[] abvs) {
        Integer indexDiff = 50;
        Integer index = 50;
        Integer indexPrev = 0;

        while (indexDiff > 1) {                    // Binary Search the array (since non exact values are used)
            indexPrev = index;
            if (measAbv <= abvs[index]) {
                index = index - indexDiff / 2;
            } else {
                index = index + indexDiff / 2;
            }
            if (index > 101) index = 101;
            if (index < 0) index = 0;
            indexDiff = Math.abs((index - indexPrev));
        }
        index = index + 1;    // this is the corrected abv

        int first = 0;
        int upto = 101;
        int mid = (first + upto) / 2;
        while (first < upto) {
            mid = (first + upto) / 2;
            if (measAbv < abvs[mid]) {
                upto = mid;
            } else if (measAbv > abvs[mid]) {
                first = mid + 1;
            } else {
                return mid;
            }
        }
        return mid;
    }

    static String getSGCorrection(String temp) {

        Hashtable hashtable = new Hashtable();
        hashtable.put("0", "-0.0007");
        hashtable.put("1", "-0.0008");
        hashtable.put("2", "-0.0008");
        hashtable.put("3", "-0.0009");
        hashtable.put("4", "-0.0009");
        hashtable.put("5", "-0.0009");
        hashtable.put("6", "-0.0008");
        hashtable.put("7", "-0.0008");
        hashtable.put("8", "-0.0007");
        hashtable.put("9", "-0.0007");
        hashtable.put("10", "-0.0006");
        hashtable.put("11", "-0.0005");
        hashtable.put("12", "-0.0004");
        hashtable.put("13", "-0.0003");
        hashtable.put("14", "-0.0001");
        hashtable.put("15", "0");
        hashtable.put("16", "0.0002");
        hashtable.put("17", "0.0003");
        hashtable.put("18", "0.0005");
        hashtable.put("19", "0.0007");
        hashtable.put("20", "0.0009");
        hashtable.put("21", "0.0011");
        hashtable.put("22", "0.0013");
        hashtable.put("23", "0.0016");
        hashtable.put("24", "0.0018");
        hashtable.put("25", "0.0021");
        hashtable.put("26", "0.0023");
        hashtable.put("27", "0.0026");
        hashtable.put("28", "0.0029");
        hashtable.put("29", "0.0032");
        hashtable.put("30", "0.0035");
        hashtable.put("31", "0.0038");
        hashtable.put("32", "0.0041");
        hashtable.put("33", "0.0044");
        hashtable.put("34", "0.0047");
        hashtable.put("35", "0.0051");
        hashtable.put("36", "0.0054");
        hashtable.put("37", "0.0058");
        hashtable.put("38", "0.0061");
        hashtable.put("39", "0.0065");
        hashtable.put("40", "0.0069");
        hashtable.put("41", "0.0073");
        hashtable.put("42", "0.0077");
        hashtable.put("43", "0.0081");
        hashtable.put("44", "0.0085");
        hashtable.put("45", "0.0089");
        hashtable.put("46", "0.0093");
        hashtable.put("47", "0.0097");
        hashtable.put("48", "0.0102");
        hashtable.put("49", "0.0106");
        String output = (String) hashtable.get(temp);

        return output;
    }


    static Double[] getAbvArray(String temp) {

        Hashtable hashtable = new Hashtable();
        hashtable.put("0", c0); //adding value to Hashtable       
        hashtable.put("1", c1);
        hashtable.put("2", c2);
        hashtable.put("3", c3);
        hashtable.put("4", c4);
        hashtable.put("5", c5);
        hashtable.put("6", c6);
        hashtable.put("7", c7);
        hashtable.put("8", c8);
        hashtable.put("9", c9);
        hashtable.put("10", c10);
        hashtable.put("11", c11);
        hashtable.put("12", c12);
        hashtable.put("13", c13);
        hashtable.put("14", c14);
        hashtable.put("15", c15);
        hashtable.put("16", c16);
        hashtable.put("17", c17);
        hashtable.put("18", c18);
        hashtable.put("19", c19);
        hashtable.put("20", c20);
        hashtable.put("21", c21);
        hashtable.put("22", c22);
        hashtable.put("23", c23);
        hashtable.put("24", c24);
        hashtable.put("25", c25);
        hashtable.put("26", c26);
        hashtable.put("27", c27);
        hashtable.put("28", c28);
        hashtable.put("29", c29);
        hashtable.put("30", c30);
        hashtable.put("31", c31);
        hashtable.put("32", c32);
        hashtable.put("33", c33);
        hashtable.put("34", c34);
        hashtable.put("35", c35);
        hashtable.put("36", c36);
        hashtable.put("37", c37);
        hashtable.put("38", c38);
        hashtable.put("39", c39);
        hashtable.put("40", c40);
        hashtable.put("41", c41);
        hashtable.put("42", c42);
        hashtable.put("43", c43);
        hashtable.put("44", c44);
        hashtable.put("45", c45);
        hashtable.put("46", c46);
        hashtable.put("47", c47);
        hashtable.put("48", c48);
        hashtable.put("49", c49);
        hashtable.put("50", c50);
        Double[] output = (Double[]) hashtable.get(temp);
        return output;
    }

    static double getAbvTemp(String temp) {
        double tempD = Double.valueOf(temp);
        double output;
        if (tempD > 60.0 && tempD < 100.0) {
            output = 0.00001 * Math.pow(tempD, 6)
                    - 0.0052 * Math.pow(tempD, 5)
                    + 1.1675 * Math.pow(tempD, 4)
                    - 140.39 * Math.pow(tempD, 3)
                    + 9480.9 * Math.pow(tempD, 2)
                    - 340937 * tempD
                    + 5 * 1000 * 1000;
        } else output = 0.0;
        DecimalFormat df = new DecimalFormat("##.#");
        output = Double.valueOf(df.format(output));
        return output;
    }

}
